package 集合;

import java.util.Set;
import java.util.TreeSet;

/**
 * https://leetcode-cn.com/problems/intersection-of-two-arrays/
 * 给定两个数组 nums1 和 nums2 ，返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。
 */
public class _349_两个数组的交集 {
    public int[] intersection(int[] nums1, int[] nums2) {
        if(nums1 == null || nums1.length == 0
                || nums2 == null || nums2.length == 0) return new int[0];


        Set<Integer> set = new TreeSet<>();
        Set<Integer> reset = new TreeSet<>();

        //存放第一个数组中的所有元素，去除重复后的
        for (int num : nums1) {
            set.add(num);
        }

        //遍历第二个数组，如果有相同的，说明两个数组都有这个元素，加入到结果集合中
        for (int num : nums2) {
            if(set.contains(num)){
                reset.add(num);
            }
        }


        int[] result = new int[reset.size()];
        int index = 0;
        for (Integer num : reset) {
            result[index++] = num;
        }
        return result;
    }
}
